package com.shujia.wyh.day14;

/*
        形式参数的问题：
            基本数据类型
            引用数据类型：
                类：当类作为方法形式参数的时候，实际上需要的是该类的对象
                抽象类：当抽象类作为方法形式参数的时候，实际上需要的是该抽象类具体子类的对象
                接口：当接口作为方法形式参数的时候，实际上需要的是该接口具体实现的类
*/

interface Demo2{
    public abstract void show();
}

class Demo2Impl implements Demo2{

    @Override
    public void show() {
        System.out.println("这是具体的类实现了Demo2接口");
    }
}

class Demo3{
    public void show2(Demo2 demo2){ //Demo2 demo2 = new Demo2Impl()
        demo2.show();
    }
}

public class CanShuDemo3 {
    public static void main(String[] args) {
        Demo3 demo3 = new Demo3();
//        Demo2 demo2 = new Demo2(); //接口不能直接实例化
        Demo2Impl demo2 = new Demo2Impl();
        demo3.show2(demo2);
    }
}
